package hu.bme.mit.androtext.nav.parser.antlr.internal; 

import java.io.InputStream;
import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.xtext.parsetree.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
import org.eclipse.xtext.conversion.ValueConverterException;
import hu.bme.mit.androtext.nav.services.AndroNavGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("all")
public class InternalAndroNavParser extends AbstractInternalAntlrParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'modelID'", "'navigation'", "'{'", "'}'", "'activity'", "'uimodel'", "'preferences'", "'tabactivity'", "'top'", "'bottom'", "'tab'", "'image'", "'imagelibrary'", "'path'", "'tabimage'", "'selected'", "'unselected'", "'eventlibrary'", "'event'"
    };
    public static final int RULE_ID=4;
    public static final int RULE_STRING=5;
    public static final int RULE_ANY_OTHER=10;
    public static final int RULE_INT=6;
    public static final int RULE_WS=9;
    public static final int RULE_SL_COMMENT=8;
    public static final int EOF=-1;
    public static final int RULE_ML_COMMENT=7;

        public InternalAndroNavParser(TokenStream input) {
            super(input);
        }
        

    public String[] getTokenNames() { return tokenNames; }
    public String getGrammarFileName() { return "../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g"; }



     	private AndroNavGrammarAccess grammarAccess;
     	
        public InternalAndroNavParser(TokenStream input, IAstFactory factory, AndroNavGrammarAccess grammarAccess) {
            this(input);
            this.factory = factory;
            registerRules(grammarAccess.getGrammar());
            this.grammarAccess = grammarAccess;
        }
        
        @Override
        protected InputStream getTokenFile() {
        	ClassLoader classLoader = getClass().getClassLoader();
        	return classLoader.getResourceAsStream("hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.tokens");
        }
        
        @Override
        protected String getFirstRuleName() {
        	return "AndroNavRoot";	
       	}
       	
       	@Override
       	protected AndroNavGrammarAccess getGrammarAccess() {
       		return grammarAccess;
       	}



    // $ANTLR start entryRuleAndroNavRoot
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:77:1: entryRuleAndroNavRoot returns [EObject current=null] : iv_ruleAndroNavRoot= ruleAndroNavRoot EOF ;
    public final EObject entryRuleAndroNavRoot() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleAndroNavRoot = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:78:2: (iv_ruleAndroNavRoot= ruleAndroNavRoot EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:79:2: iv_ruleAndroNavRoot= ruleAndroNavRoot EOF
            {
             currentNode = createCompositeNode(grammarAccess.getAndroNavRootRule(), currentNode); 
            pushFollow(FOLLOW_ruleAndroNavRoot_in_entryRuleAndroNavRoot75);
            iv_ruleAndroNavRoot=ruleAndroNavRoot();
            _fsp--;

             current =iv_ruleAndroNavRoot; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleAndroNavRoot85); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end entryRuleAndroNavRoot


    // $ANTLR start ruleAndroNavRoot
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:86:1: ruleAndroNavRoot returns [EObject current=null] : ( 'modelID' ( (lv_name_1_0= RULE_ID ) ) ( (lv_navigation_2_0= ruleNavigation ) ) ( (lv_imageLibrary_3_0= ruleImageLibrary ) )? ( (lv_eventLibrary_4_0= ruleEventLibrary ) )? ) ;
    public final EObject ruleAndroNavRoot() throws RecognitionException {
        EObject current = null;

        Token lv_name_1_0=null;
        EObject lv_navigation_2_0 = null;

        EObject lv_imageLibrary_3_0 = null;

        EObject lv_eventLibrary_4_0 = null;


         EObject temp=null; setCurrentLookahead(); resetLookahead(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:91:6: ( ( 'modelID' ( (lv_name_1_0= RULE_ID ) ) ( (lv_navigation_2_0= ruleNavigation ) ) ( (lv_imageLibrary_3_0= ruleImageLibrary ) )? ( (lv_eventLibrary_4_0= ruleEventLibrary ) )? ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:92:1: ( 'modelID' ( (lv_name_1_0= RULE_ID ) ) ( (lv_navigation_2_0= ruleNavigation ) ) ( (lv_imageLibrary_3_0= ruleImageLibrary ) )? ( (lv_eventLibrary_4_0= ruleEventLibrary ) )? )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:92:1: ( 'modelID' ( (lv_name_1_0= RULE_ID ) ) ( (lv_navigation_2_0= ruleNavigation ) ) ( (lv_imageLibrary_3_0= ruleImageLibrary ) )? ( (lv_eventLibrary_4_0= ruleEventLibrary ) )? )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:92:3: 'modelID' ( (lv_name_1_0= RULE_ID ) ) ( (lv_navigation_2_0= ruleNavigation ) ) ( (lv_imageLibrary_3_0= ruleImageLibrary ) )? ( (lv_eventLibrary_4_0= ruleEventLibrary ) )?
            {
            match(input,11,FOLLOW_11_in_ruleAndroNavRoot120); 

                    createLeafNode(grammarAccess.getAndroNavRootAccess().getModelIDKeyword_0(), null); 
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:96:1: ( (lv_name_1_0= RULE_ID ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:97:1: (lv_name_1_0= RULE_ID )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:97:1: (lv_name_1_0= RULE_ID )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:98:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)input.LT(1);
            match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleAndroNavRoot137); 

            			createLeafNode(grammarAccess.getAndroNavRootAccess().getNameIDTerminalRuleCall_1_0(), "name"); 
            		

            	        if (current==null) {
            	            current = factory.create(grammarAccess.getAndroNavRootRule().getType().getClassifier());
            	            associateNodeWithAstElement(currentNode, current);
            	        }
            	        try {
            	       		set(
            	       			current, 
            	       			"name",
            	        		lv_name_1_0, 
            	        		"ID", 
            	        		lastConsumedNode);
            	        } catch (ValueConverterException vce) {
            				handleValueConverterException(vce);
            	        }
            	    

            }


            }

            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:120:2: ( (lv_navigation_2_0= ruleNavigation ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:121:1: (lv_navigation_2_0= ruleNavigation )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:121:1: (lv_navigation_2_0= ruleNavigation )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:122:3: lv_navigation_2_0= ruleNavigation
            {
             
            	        currentNode=createCompositeNode(grammarAccess.getAndroNavRootAccess().getNavigationNavigationParserRuleCall_2_0(), currentNode); 
            	    
            pushFollow(FOLLOW_ruleNavigation_in_ruleAndroNavRoot163);
            lv_navigation_2_0=ruleNavigation();
            _fsp--;


            	        if (current==null) {
            	            current = factory.create(grammarAccess.getAndroNavRootRule().getType().getClassifier());
            	            associateNodeWithAstElement(currentNode.getParent(), current);
            	        }
            	        try {
            	       		set(
            	       			current, 
            	       			"navigation",
            	        		lv_navigation_2_0, 
            	        		"Navigation", 
            	        		currentNode);
            	        } catch (ValueConverterException vce) {
            				handleValueConverterException(vce);
            	        }
            	        currentNode = currentNode.getParent();
            	    

            }


            }

            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:144:2: ( (lv_imageLibrary_3_0= ruleImageLibrary ) )?
            int alt1=2;
            int LA1_0 = input.LA(1);

            if ( (LA1_0==23) ) {
                alt1=1;
            }
            switch (alt1) {
                case 1 :
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:145:1: (lv_imageLibrary_3_0= ruleImageLibrary )
                    {
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:145:1: (lv_imageLibrary_3_0= ruleImageLibrary )
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:146:3: lv_imageLibrary_3_0= ruleImageLibrary
                    {
                     
                    	        currentNode=createCompositeNode(grammarAccess.getAndroNavRootAccess().getImageLibraryImageLibraryParserRuleCall_3_0(), currentNode); 
                    	    
                    pushFollow(FOLLOW_ruleImageLibrary_in_ruleAndroNavRoot184);
                    lv_imageLibrary_3_0=ruleImageLibrary();
                    _fsp--;


                    	        if (current==null) {
                    	            current = factory.create(grammarAccess.getAndroNavRootRule().getType().getClassifier());
                    	            associateNodeWithAstElement(currentNode.getParent(), current);
                    	        }
                    	        try {
                    	       		set(
                    	       			current, 
                    	       			"imageLibrary",
                    	        		lv_imageLibrary_3_0, 
                    	        		"ImageLibrary", 
                    	        		currentNode);
                    	        } catch (ValueConverterException vce) {
                    				handleValueConverterException(vce);
                    	        }
                    	        currentNode = currentNode.getParent();
                    	    

                    }


                    }
                    break;

            }

            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:168:3: ( (lv_eventLibrary_4_0= ruleEventLibrary ) )?
            int alt2=2;
            int LA2_0 = input.LA(1);

            if ( (LA2_0==28) ) {
                alt2=1;
            }
            switch (alt2) {
                case 1 :
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:169:1: (lv_eventLibrary_4_0= ruleEventLibrary )
                    {
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:169:1: (lv_eventLibrary_4_0= ruleEventLibrary )
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:170:3: lv_eventLibrary_4_0= ruleEventLibrary
                    {
                     
                    	        currentNode=createCompositeNode(grammarAccess.getAndroNavRootAccess().getEventLibraryEventLibraryParserRuleCall_4_0(), currentNode); 
                    	    
                    pushFollow(FOLLOW_ruleEventLibrary_in_ruleAndroNavRoot206);
                    lv_eventLibrary_4_0=ruleEventLibrary();
                    _fsp--;


                    	        if (current==null) {
                    	            current = factory.create(grammarAccess.getAndroNavRootRule().getType().getClassifier());
                    	            associateNodeWithAstElement(currentNode.getParent(), current);
                    	        }
                    	        try {
                    	       		set(
                    	       			current, 
                    	       			"eventLibrary",
                    	        		lv_eventLibrary_4_0, 
                    	        		"EventLibrary", 
                    	        		currentNode);
                    	        } catch (ValueConverterException vce) {
                    				handleValueConverterException(vce);
                    	        }
                    	        currentNode = currentNode.getParent();
                    	    

                    }


                    }
                    break;

            }


            }


            }

             resetLookahead(); 
                	lastConsumedNode = currentNode;
                
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end ruleAndroNavRoot


    // $ANTLR start entryRuleNavigation
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:200:1: entryRuleNavigation returns [EObject current=null] : iv_ruleNavigation= ruleNavigation EOF ;
    public final EObject entryRuleNavigation() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNavigation = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:201:2: (iv_ruleNavigation= ruleNavigation EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:202:2: iv_ruleNavigation= ruleNavigation EOF
            {
             currentNode = createCompositeNode(grammarAccess.getNavigationRule(), currentNode); 
            pushFollow(FOLLOW_ruleNavigation_in_entryRuleNavigation243);
            iv_ruleNavigation=ruleNavigation();
            _fsp--;

             current =iv_ruleNavigation; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNavigation253); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end entryRuleNavigation


    // $ANTLR start ruleNavigation
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:209:1: ruleNavigation returns [EObject current=null] : ( () 'navigation' '{' ( (lv_mainActivity_3_0= ruleAbstractActivity ) ) ( (lv_activities_4_0= ruleAbstractActivity ) )* '}' ) ;
    public final EObject ruleNavigation() throws RecognitionException {
        EObject current = null;

        EObject lv_mainActivity_3_0 = null;

        EObject lv_activities_4_0 = null;


         EObject temp=null; setCurrentLookahead(); resetLookahead(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:214:6: ( ( () 'navigation' '{' ( (lv_mainActivity_3_0= ruleAbstractActivity ) ) ( (lv_activities_4_0= ruleAbstractActivity ) )* '}' ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:215:1: ( () 'navigation' '{' ( (lv_mainActivity_3_0= ruleAbstractActivity ) ) ( (lv_activities_4_0= ruleAbstractActivity ) )* '}' )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:215:1: ( () 'navigation' '{' ( (lv_mainActivity_3_0= ruleAbstractActivity ) ) ( (lv_activities_4_0= ruleAbstractActivity ) )* '}' )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:215:2: () 'navigation' '{' ( (lv_mainActivity_3_0= ruleAbstractActivity ) ) ( (lv_activities_4_0= ruleAbstractActivity ) )* '}'
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:215:2: ()
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:216:5: 
            {
             
                    temp=factory.create(grammarAccess.getNavigationAccess().getNavigationAction_0().getType().getClassifier());
                    current = temp; 
                    temp = null;
                    CompositeNode newNode = createCompositeNode(grammarAccess.getNavigationAccess().getNavigationAction_0(), currentNode.getParent());
                newNode.getChildren().add(currentNode);
                moveLookaheadInfo(currentNode, newNode);
                currentNode = newNode; 
                    associateNodeWithAstElement(currentNode, current); 
                

            }

            match(input,12,FOLLOW_12_in_ruleNavigation297); 

                    createLeafNode(grammarAccess.getNavigationAccess().getNavigationKeyword_1(), null); 
                
            match(input,13,FOLLOW_13_in_ruleNavigation307); 

                    createLeafNode(grammarAccess.getNavigationAccess().getLeftCurlyBracketKeyword_2(), null); 
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:234:1: ( (lv_mainActivity_3_0= ruleAbstractActivity ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:235:1: (lv_mainActivity_3_0= ruleAbstractActivity )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:235:1: (lv_mainActivity_3_0= ruleAbstractActivity )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:236:3: lv_mainActivity_3_0= ruleAbstractActivity
            {
             
            	        currentNode=createCompositeNode(grammarAccess.getNavigationAccess().getMainActivityAbstractActivityParserRuleCall_3_0(), currentNode); 
            	    
            pushFollow(FOLLOW_ruleAbstractActivity_in_ruleNavigation328);
            lv_mainActivity_3_0=ruleAbstractActivity();
            _fsp--;


            	        if (current==null) {
            	            current = factory.create(grammarAccess.getNavigationRule().getType().getClassifier());
            	            associateNodeWithAstElement(currentNode.getParent(), current);
            	        }
            	        try {
            	       		set(
            	       			current, 
            	       			"mainActivity",
            	        		lv_mainActivity_3_0, 
            	        		"AbstractActivity", 
            	        		currentNode);
            	        } catch (ValueConverterException vce) {
            				handleValueConverterException(vce);
            	        }
            	        currentNode = currentNode.getParent();
            	    

            }


            }

            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:258:2: ( (lv_activities_4_0= ruleAbstractActivity ) )*
            loop3:
            do {
                int alt3=2;
                int LA3_0 = input.LA(1);

                if ( (LA3_0==15||(LA3_0>=17 && LA3_0<=18)) ) {
                    alt3=1;
                }


                switch (alt3) {
            	case 1 :
            	    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:259:1: (lv_activities_4_0= ruleAbstractActivity )
            	    {
            	    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:259:1: (lv_activities_4_0= ruleAbstractActivity )
            	    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:260:3: lv_activities_4_0= ruleAbstractActivity
            	    {
            	     
            	    	        currentNode=createCompositeNode(grammarAccess.getNavigationAccess().getActivitiesAbstractActivityParserRuleCall_4_0(), currentNode); 
            	    	    
            	    pushFollow(FOLLOW_ruleAbstractActivity_in_ruleNavigation349);
            	    lv_activities_4_0=ruleAbstractActivity();
            	    _fsp--;


            	    	        if (current==null) {
            	    	            current = factory.create(grammarAccess.getNavigationRule().getType().getClassifier());
            	    	            associateNodeWithAstElement(currentNode.getParent(), current);
            	    	        }
            	    	        try {
            	    	       		add(
            	    	       			current, 
            	    	       			"activities",
            	    	        		lv_activities_4_0, 
            	    	        		"AbstractActivity", 
            	    	        		currentNode);
            	    	        } catch (ValueConverterException vce) {
            	    				handleValueConverterException(vce);
            	    	        }
            	    	        currentNode = currentNode.getParent();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop3;
                }
            } while (true);

            match(input,14,FOLLOW_14_in_ruleNavigation360); 

                    createLeafNode(grammarAccess.getNavigationAccess().getRightCurlyBracketKeyword_5(), null); 
                

            }


            }

             resetLookahead(); 
                	lastConsumedNode = currentNode;
                
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end ruleNavigation


    // $ANTLR start entryRuleAbstractActivity
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:294:1: entryRuleAbstractActivity returns [EObject current=null] : iv_ruleAbstractActivity= ruleAbstractActivity EOF ;
    public final EObject entryRuleAbstractActivity() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleAbstractActivity = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:295:2: (iv_ruleAbstractActivity= ruleAbstractActivity EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:296:2: iv_ruleAbstractActivity= ruleAbstractActivity EOF
            {
             currentNode = createCompositeNode(grammarAccess.getAbstractActivityRule(), currentNode); 
            pushFollow(FOLLOW_ruleAbstractActivity_in_entryRuleAbstractActivity396);
            iv_ruleAbstractActivity=ruleAbstractActivity();
            _fsp--;

             current =iv_ruleAbstractActivity; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleAbstractActivity406); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end entryRuleAbstractActivity


    // $ANTLR start ruleAbstractActivity
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:303:1: ruleAbstractActivity returns [EObject current=null] : (this_Activity_0= ruleActivity | this_TabActivity_1= ruleTabActivity ) ;
    public final EObject ruleAbstractActivity() throws RecognitionException {
        EObject current = null;

        EObject this_Activity_0 = null;

        EObject this_TabActivity_1 = null;


         EObject temp=null; setCurrentLookahead(); resetLookahead(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:308:6: ( (this_Activity_0= ruleActivity | this_TabActivity_1= ruleTabActivity ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:309:1: (this_Activity_0= ruleActivity | this_TabActivity_1= ruleTabActivity )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:309:1: (this_Activity_0= ruleActivity | this_TabActivity_1= ruleTabActivity )
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==15||LA4_0==17) ) {
                alt4=1;
            }
            else if ( (LA4_0==18) ) {
                alt4=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("309:1: (this_Activity_0= ruleActivity | this_TabActivity_1= ruleTabActivity )", 4, 0, input);

                throw nvae;
            }
            switch (alt4) {
                case 1 :
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:310:5: this_Activity_0= ruleActivity
                    {
                     
                            currentNode=createCompositeNode(grammarAccess.getAbstractActivityAccess().getActivityParserRuleCall_0(), currentNode); 
                        
                    pushFollow(FOLLOW_ruleActivity_in_ruleAbstractActivity453);
                    this_Activity_0=ruleActivity();
                    _fsp--;

                     
                            current = this_Activity_0; 
                            currentNode = currentNode.getParent();
                        

                    }
                    break;
                case 2 :
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:320:5: this_TabActivity_1= ruleTabActivity
                    {
                     
                            currentNode=createCompositeNode(grammarAccess.getAbstractActivityAccess().getTabActivityParserRuleCall_1(), currentNode); 
                        
                    pushFollow(FOLLOW_ruleTabActivity_in_ruleAbstractActivity480);
                    this_TabActivity_1=ruleTabActivity();
                    _fsp--;

                     
                            current = this_TabActivity_1; 
                            currentNode = currentNode.getParent();
                        

                    }
                    break;

            }


            }

             resetLookahead(); 
                	lastConsumedNode = currentNode;
                
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end ruleAbstractActivity


    // $ANTLR start entryRuleActivity
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:336:1: entryRuleActivity returns [EObject current=null] : iv_ruleActivity= ruleActivity EOF ;
    public final EObject entryRuleActivity() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleActivity = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:337:2: (iv_ruleActivity= ruleActivity EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:338:2: iv_ruleActivity= ruleActivity EOF
            {
             currentNode = createCompositeNode(grammarAccess.getActivityRule(), currentNode); 
            pushFollow(FOLLOW_ruleActivity_in_entryRuleActivity515);
            iv_ruleActivity=ruleActivity();
            _fsp--;

             current =iv_ruleActivity; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleActivity525); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end entryRuleActivity


    // $ANTLR start ruleActivity
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:345:1: ruleActivity returns [EObject current=null] : ( ( 'activity' ( (lv_name_1_0= RULE_ID ) ) '{' 'uimodel' ( ( RULE_ID ) ) '}' ) | this_PreferenceActivity_6= rulePreferenceActivity ) ;
    public final EObject ruleActivity() throws RecognitionException {
        EObject current = null;

        Token lv_name_1_0=null;
        EObject this_PreferenceActivity_6 = null;


         EObject temp=null; setCurrentLookahead(); resetLookahead(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:350:6: ( ( ( 'activity' ( (lv_name_1_0= RULE_ID ) ) '{' 'uimodel' ( ( RULE_ID ) ) '}' ) | this_PreferenceActivity_6= rulePreferenceActivity ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:351:1: ( ( 'activity' ( (lv_name_1_0= RULE_ID ) ) '{' 'uimodel' ( ( RULE_ID ) ) '}' ) | this_PreferenceActivity_6= rulePreferenceActivity )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:351:1: ( ( 'activity' ( (lv_name_1_0= RULE_ID ) ) '{' 'uimodel' ( ( RULE_ID ) ) '}' ) | this_PreferenceActivity_6= rulePreferenceActivity )
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( (LA5_0==15) ) {
                alt5=1;
            }
            else if ( (LA5_0==17) ) {
                alt5=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("351:1: ( ( 'activity' ( (lv_name_1_0= RULE_ID ) ) '{' 'uimodel' ( ( RULE_ID ) ) '}' ) | this_PreferenceActivity_6= rulePreferenceActivity )", 5, 0, input);

                throw nvae;
            }
            switch (alt5) {
                case 1 :
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:351:2: ( 'activity' ( (lv_name_1_0= RULE_ID ) ) '{' 'uimodel' ( ( RULE_ID ) ) '}' )
                    {
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:351:2: ( 'activity' ( (lv_name_1_0= RULE_ID ) ) '{' 'uimodel' ( ( RULE_ID ) ) '}' )
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:351:4: 'activity' ( (lv_name_1_0= RULE_ID ) ) '{' 'uimodel' ( ( RULE_ID ) ) '}'
                    {
                    match(input,15,FOLLOW_15_in_ruleActivity561); 

                            createLeafNode(grammarAccess.getActivityAccess().getActivityKeyword_0_0(), null); 
                        
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:355:1: ( (lv_name_1_0= RULE_ID ) )
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:356:1: (lv_name_1_0= RULE_ID )
                    {
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:356:1: (lv_name_1_0= RULE_ID )
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:357:3: lv_name_1_0= RULE_ID
                    {
                    lv_name_1_0=(Token)input.LT(1);
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleActivity578); 

                    			createLeafNode(grammarAccess.getActivityAccess().getNameIDTerminalRuleCall_0_1_0(), "name"); 
                    		

                    	        if (current==null) {
                    	            current = factory.create(grammarAccess.getActivityRule().getType().getClassifier());
                    	            associateNodeWithAstElement(currentNode, current);
                    	        }
                    	        try {
                    	       		set(
                    	       			current, 
                    	       			"name",
                    	        		lv_name_1_0, 
                    	        		"ID", 
                    	        		lastConsumedNode);
                    	        } catch (ValueConverterException vce) {
                    				handleValueConverterException(vce);
                    	        }
                    	    

                    }


                    }

                    match(input,13,FOLLOW_13_in_ruleActivity593); 

                            createLeafNode(grammarAccess.getActivityAccess().getLeftCurlyBracketKeyword_0_2(), null); 
                        
                    match(input,16,FOLLOW_16_in_ruleActivity603); 

                            createLeafNode(grammarAccess.getActivityAccess().getUimodelKeyword_0_3(), null); 
                        
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:387:1: ( ( RULE_ID ) )
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:388:1: ( RULE_ID )
                    {
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:388:1: ( RULE_ID )
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:389:3: RULE_ID
                    {

                    			if (current==null) {
                    	            current = factory.create(grammarAccess.getActivityRule().getType().getClassifier());
                    	            associateNodeWithAstElement(currentNode, current);
                    	        }
                            
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleActivity621); 

                    		createLeafNode(grammarAccess.getActivityAccess().getUimodelAndroGuiRootCrossReference_0_4_0(), "uimodel"); 
                    	

                    }


                    }

                    match(input,14,FOLLOW_14_in_ruleActivity631); 

                            createLeafNode(grammarAccess.getActivityAccess().getRightCurlyBracketKeyword_0_5(), null); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:407:5: this_PreferenceActivity_6= rulePreferenceActivity
                    {
                     
                            currentNode=createCompositeNode(grammarAccess.getActivityAccess().getPreferenceActivityParserRuleCall_1(), currentNode); 
                        
                    pushFollow(FOLLOW_rulePreferenceActivity_in_ruleActivity660);
                    this_PreferenceActivity_6=rulePreferenceActivity();
                    _fsp--;

                     
                            current = this_PreferenceActivity_6; 
                            currentNode = currentNode.getParent();
                        

                    }
                    break;

            }


            }

             resetLookahead(); 
                	lastConsumedNode = currentNode;
                
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end ruleActivity


    // $ANTLR start entryRulePreferenceActivity
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:423:1: entryRulePreferenceActivity returns [EObject current=null] : iv_rulePreferenceActivity= rulePreferenceActivity EOF ;
    public final EObject entryRulePreferenceActivity() throws RecognitionException {
        EObject current = null;

        EObject iv_rulePreferenceActivity = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:424:2: (iv_rulePreferenceActivity= rulePreferenceActivity EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:425:2: iv_rulePreferenceActivity= rulePreferenceActivity EOF
            {
             currentNode = createCompositeNode(grammarAccess.getPreferenceActivityRule(), currentNode); 
            pushFollow(FOLLOW_rulePreferenceActivity_in_entryRulePreferenceActivity695);
            iv_rulePreferenceActivity=rulePreferenceActivity();
            _fsp--;

             current =iv_rulePreferenceActivity; 
            match(input,EOF,FOLLOW_EOF_in_entryRulePreferenceActivity705); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end entryRulePreferenceActivity


    // $ANTLR start rulePreferenceActivity
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:432:1: rulePreferenceActivity returns [EObject current=null] : ( 'preferences' ( (lv_name_1_0= RULE_ID ) ) '{' 'uimodel' ( ( RULE_ID ) ) '}' ) ;
    public final EObject rulePreferenceActivity() throws RecognitionException {
        EObject current = null;

        Token lv_name_1_0=null;

         EObject temp=null; setCurrentLookahead(); resetLookahead(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:437:6: ( ( 'preferences' ( (lv_name_1_0= RULE_ID ) ) '{' 'uimodel' ( ( RULE_ID ) ) '}' ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:438:1: ( 'preferences' ( (lv_name_1_0= RULE_ID ) ) '{' 'uimodel' ( ( RULE_ID ) ) '}' )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:438:1: ( 'preferences' ( (lv_name_1_0= RULE_ID ) ) '{' 'uimodel' ( ( RULE_ID ) ) '}' )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:438:3: 'preferences' ( (lv_name_1_0= RULE_ID ) ) '{' 'uimodel' ( ( RULE_ID ) ) '}'
            {
            match(input,17,FOLLOW_17_in_rulePreferenceActivity740); 

                    createLeafNode(grammarAccess.getPreferenceActivityAccess().getPreferencesKeyword_0(), null); 
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:442:1: ( (lv_name_1_0= RULE_ID ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:443:1: (lv_name_1_0= RULE_ID )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:443:1: (lv_name_1_0= RULE_ID )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:444:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)input.LT(1);
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rulePreferenceActivity757); 

            			createLeafNode(grammarAccess.getPreferenceActivityAccess().getNameIDTerminalRuleCall_1_0(), "name"); 
            		

            	        if (current==null) {
            	            current = factory.create(grammarAccess.getPreferenceActivityRule().getType().getClassifier());
            	            associateNodeWithAstElement(currentNode, current);
            	        }
            	        try {
            	       		set(
            	       			current, 
            	       			"name",
            	        		lv_name_1_0, 
            	        		"ID", 
            	        		lastConsumedNode);
            	        } catch (ValueConverterException vce) {
            				handleValueConverterException(vce);
            	        }
            	    

            }


            }

            match(input,13,FOLLOW_13_in_rulePreferenceActivity772); 

                    createLeafNode(grammarAccess.getPreferenceActivityAccess().getLeftCurlyBracketKeyword_2(), null); 
                
            match(input,16,FOLLOW_16_in_rulePreferenceActivity782); 

                    createLeafNode(grammarAccess.getPreferenceActivityAccess().getUimodelKeyword_3(), null); 
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:474:1: ( ( RULE_ID ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:475:1: ( RULE_ID )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:475:1: ( RULE_ID )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:476:3: RULE_ID
            {

            			if (current==null) {
            	            current = factory.create(grammarAccess.getPreferenceActivityRule().getType().getClassifier());
            	            associateNodeWithAstElement(currentNode, current);
            	        }
                    
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rulePreferenceActivity800); 

            		createLeafNode(grammarAccess.getPreferenceActivityAccess().getUimodelAndroGuiRootCrossReference_4_0(), "uimodel"); 
            	

            }


            }

            match(input,14,FOLLOW_14_in_rulePreferenceActivity810); 

                    createLeafNode(grammarAccess.getPreferenceActivityAccess().getRightCurlyBracketKeyword_5(), null); 
                

            }


            }

             resetLookahead(); 
                	lastConsumedNode = currentNode;
                
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end rulePreferenceActivity


    // $ANTLR start entryRuleTabActivity
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:500:1: entryRuleTabActivity returns [EObject current=null] : iv_ruleTabActivity= ruleTabActivity EOF ;
    public final EObject entryRuleTabActivity() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleTabActivity = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:501:2: (iv_ruleTabActivity= ruleTabActivity EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:502:2: iv_ruleTabActivity= ruleTabActivity EOF
            {
             currentNode = createCompositeNode(grammarAccess.getTabActivityRule(), currentNode); 
            pushFollow(FOLLOW_ruleTabActivity_in_entryRuleTabActivity846);
            iv_ruleTabActivity=ruleTabActivity();
            _fsp--;

             current =iv_ruleTabActivity; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleTabActivity856); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end entryRuleTabActivity


    // $ANTLR start ruleTabActivity
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:509:1: ruleTabActivity returns [EObject current=null] : ( 'tabactivity' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_position_2_0= 'top' ) ) | 'bottom' )? '{' ( (lv_tabs_5_0= ruleTab ) )+ '}' ) ;
    public final EObject ruleTabActivity() throws RecognitionException {
        EObject current = null;

        Token lv_name_1_0=null;
        Token lv_position_2_0=null;
        EObject lv_tabs_5_0 = null;


         EObject temp=null; setCurrentLookahead(); resetLookahead(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:514:6: ( ( 'tabactivity' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_position_2_0= 'top' ) ) | 'bottom' )? '{' ( (lv_tabs_5_0= ruleTab ) )+ '}' ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:515:1: ( 'tabactivity' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_position_2_0= 'top' ) ) | 'bottom' )? '{' ( (lv_tabs_5_0= ruleTab ) )+ '}' )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:515:1: ( 'tabactivity' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_position_2_0= 'top' ) ) | 'bottom' )? '{' ( (lv_tabs_5_0= ruleTab ) )+ '}' )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:515:3: 'tabactivity' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_position_2_0= 'top' ) ) | 'bottom' )? '{' ( (lv_tabs_5_0= ruleTab ) )+ '}'
            {
            match(input,18,FOLLOW_18_in_ruleTabActivity891); 

                    createLeafNode(grammarAccess.getTabActivityAccess().getTabactivityKeyword_0(), null); 
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:519:1: ( (lv_name_1_0= RULE_ID ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:520:1: (lv_name_1_0= RULE_ID )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:520:1: (lv_name_1_0= RULE_ID )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:521:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)input.LT(1);
            match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTabActivity908); 

            			createLeafNode(grammarAccess.getTabActivityAccess().getNameIDTerminalRuleCall_1_0(), "name"); 
            		

            	        if (current==null) {
            	            current = factory.create(grammarAccess.getTabActivityRule().getType().getClassifier());
            	            associateNodeWithAstElement(currentNode, current);
            	        }
            	        try {
            	       		set(
            	       			current, 
            	       			"name",
            	        		lv_name_1_0, 
            	        		"ID", 
            	        		lastConsumedNode);
            	        } catch (ValueConverterException vce) {
            				handleValueConverterException(vce);
            	        }
            	    

            }


            }

            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:543:2: ( ( (lv_position_2_0= 'top' ) ) | 'bottom' )?
            int alt6=3;
            int LA6_0 = input.LA(1);

            if ( (LA6_0==19) ) {
                alt6=1;
            }
            else if ( (LA6_0==20) ) {
                alt6=2;
            }
            switch (alt6) {
                case 1 :
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:543:3: ( (lv_position_2_0= 'top' ) )
                    {
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:543:3: ( (lv_position_2_0= 'top' ) )
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:544:1: (lv_position_2_0= 'top' )
                    {
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:544:1: (lv_position_2_0= 'top' )
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:545:3: lv_position_2_0= 'top'
                    {
                    lv_position_2_0=(Token)input.LT(1);
                    match(input,19,FOLLOW_19_in_ruleTabActivity932); 

                            createLeafNode(grammarAccess.getTabActivityAccess().getPositionTopKeyword_2_0_0(), "position"); 
                        

                    	        if (current==null) {
                    	            current = factory.create(grammarAccess.getTabActivityRule().getType().getClassifier());
                    	            associateNodeWithAstElement(currentNode, current);
                    	        }
                    	        
                    	        try {
                    	       		set(current, "position", true, "top", lastConsumedNode);
                    	        } catch (ValueConverterException vce) {
                    				handleValueConverterException(vce);
                    	        }
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:565:7: 'bottom'
                    {
                    match(input,20,FOLLOW_20_in_ruleTabActivity961); 

                            createLeafNode(grammarAccess.getTabActivityAccess().getBottomKeyword_2_1(), null); 
                        

                    }
                    break;

            }

            match(input,13,FOLLOW_13_in_ruleTabActivity973); 

                    createLeafNode(grammarAccess.getTabActivityAccess().getLeftCurlyBracketKeyword_3(), null); 
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:573:1: ( (lv_tabs_5_0= ruleTab ) )+
            int cnt7=0;
            loop7:
            do {
                int alt7=2;
                int LA7_0 = input.LA(1);

                if ( (LA7_0==21) ) {
                    alt7=1;
                }


                switch (alt7) {
            	case 1 :
            	    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:574:1: (lv_tabs_5_0= ruleTab )
            	    {
            	    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:574:1: (lv_tabs_5_0= ruleTab )
            	    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:575:3: lv_tabs_5_0= ruleTab
            	    {
            	     
            	    	        currentNode=createCompositeNode(grammarAccess.getTabActivityAccess().getTabsTabParserRuleCall_4_0(), currentNode); 
            	    	    
            	    pushFollow(FOLLOW_ruleTab_in_ruleTabActivity994);
            	    lv_tabs_5_0=ruleTab();
            	    _fsp--;


            	    	        if (current==null) {
            	    	            current = factory.create(grammarAccess.getTabActivityRule().getType().getClassifier());
            	    	            associateNodeWithAstElement(currentNode.getParent(), current);
            	    	        }
            	    	        try {
            	    	       		add(
            	    	       			current, 
            	    	       			"tabs",
            	    	        		lv_tabs_5_0, 
            	    	        		"Tab", 
            	    	        		currentNode);
            	    	        } catch (ValueConverterException vce) {
            	    				handleValueConverterException(vce);
            	    	        }
            	    	        currentNode = currentNode.getParent();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt7 >= 1 ) break loop7;
                        EarlyExitException eee =
                            new EarlyExitException(7, input);
                        throw eee;
                }
                cnt7++;
            } while (true);

            match(input,14,FOLLOW_14_in_ruleTabActivity1005); 

                    createLeafNode(grammarAccess.getTabActivityAccess().getRightCurlyBracketKeyword_5(), null); 
                

            }


            }

             resetLookahead(); 
                	lastConsumedNode = currentNode;
                
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end ruleTabActivity


    // $ANTLR start entryRuleTab
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:609:1: entryRuleTab returns [EObject current=null] : iv_ruleTab= ruleTab EOF ;
    public final EObject entryRuleTab() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleTab = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:610:2: (iv_ruleTab= ruleTab EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:611:2: iv_ruleTab= ruleTab EOF
            {
             currentNode = createCompositeNode(grammarAccess.getTabRule(), currentNode); 
            pushFollow(FOLLOW_ruleTab_in_entryRuleTab1041);
            iv_ruleTab=ruleTab();
            _fsp--;

             current =iv_ruleTab; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleTab1051); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end entryRuleTab


    // $ANTLR start ruleTab
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:618:1: ruleTab returns [EObject current=null] : ( 'tab' ( (lv_tag_1_0= RULE_STRING ) ) '{' 'activity' ( ( RULE_ID ) ) 'image' ( ( RULE_ID ) ) '}' ) ;
    public final EObject ruleTab() throws RecognitionException {
        EObject current = null;

        Token lv_tag_1_0=null;

         EObject temp=null; setCurrentLookahead(); resetLookahead(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:623:6: ( ( 'tab' ( (lv_tag_1_0= RULE_STRING ) ) '{' 'activity' ( ( RULE_ID ) ) 'image' ( ( RULE_ID ) ) '}' ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:624:1: ( 'tab' ( (lv_tag_1_0= RULE_STRING ) ) '{' 'activity' ( ( RULE_ID ) ) 'image' ( ( RULE_ID ) ) '}' )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:624:1: ( 'tab' ( (lv_tag_1_0= RULE_STRING ) ) '{' 'activity' ( ( RULE_ID ) ) 'image' ( ( RULE_ID ) ) '}' )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:624:3: 'tab' ( (lv_tag_1_0= RULE_STRING ) ) '{' 'activity' ( ( RULE_ID ) ) 'image' ( ( RULE_ID ) ) '}'
            {
            match(input,21,FOLLOW_21_in_ruleTab1086); 

                    createLeafNode(grammarAccess.getTabAccess().getTabKeyword_0(), null); 
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:628:1: ( (lv_tag_1_0= RULE_STRING ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:629:1: (lv_tag_1_0= RULE_STRING )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:629:1: (lv_tag_1_0= RULE_STRING )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:630:3: lv_tag_1_0= RULE_STRING
            {
            lv_tag_1_0=(Token)input.LT(1);
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleTab1103); 

            			createLeafNode(grammarAccess.getTabAccess().getTagSTRINGTerminalRuleCall_1_0(), "tag"); 
            		

            	        if (current==null) {
            	            current = factory.create(grammarAccess.getTabRule().getType().getClassifier());
            	            associateNodeWithAstElement(currentNode, current);
            	        }
            	        try {
            	       		set(
            	       			current, 
            	       			"tag",
            	        		lv_tag_1_0, 
            	        		"STRING", 
            	        		lastConsumedNode);
            	        } catch (ValueConverterException vce) {
            				handleValueConverterException(vce);
            	        }
            	    

            }


            }

            match(input,13,FOLLOW_13_in_ruleTab1118); 

                    createLeafNode(grammarAccess.getTabAccess().getLeftCurlyBracketKeyword_2(), null); 
                
            match(input,15,FOLLOW_15_in_ruleTab1128); 

                    createLeafNode(grammarAccess.getTabAccess().getActivityKeyword_3(), null); 
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:660:1: ( ( RULE_ID ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:661:1: ( RULE_ID )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:661:1: ( RULE_ID )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:662:3: RULE_ID
            {

            			if (current==null) {
            	            current = factory.create(grammarAccess.getTabRule().getType().getClassifier());
            	            associateNodeWithAstElement(currentNode, current);
            	        }
                    
            match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTab1146); 

            		createLeafNode(grammarAccess.getTabAccess().getActivityActivityCrossReference_4_0(), "activity"); 
            	

            }


            }

            match(input,22,FOLLOW_22_in_ruleTab1156); 

                    createLeafNode(grammarAccess.getTabAccess().getImageKeyword_5(), null); 
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:678:1: ( ( RULE_ID ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:679:1: ( RULE_ID )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:679:1: ( RULE_ID )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:680:3: RULE_ID
            {

            			if (current==null) {
            	            current = factory.create(grammarAccess.getTabRule().getType().getClassifier());
            	            associateNodeWithAstElement(currentNode, current);
            	        }
                    
            match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTab1174); 

            		createLeafNode(grammarAccess.getTabAccess().getImageTabImageCrossReference_6_0(), "image"); 
            	

            }


            }

            match(input,14,FOLLOW_14_in_ruleTab1184); 

                    createLeafNode(grammarAccess.getTabAccess().getRightCurlyBracketKeyword_7(), null); 
                

            }


            }

             resetLookahead(); 
                	lastConsumedNode = currentNode;
                
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end ruleTab


    // $ANTLR start entryRuleImageLibrary
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:704:1: entryRuleImageLibrary returns [EObject current=null] : iv_ruleImageLibrary= ruleImageLibrary EOF ;
    public final EObject entryRuleImageLibrary() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleImageLibrary = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:705:2: (iv_ruleImageLibrary= ruleImageLibrary EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:706:2: iv_ruleImageLibrary= ruleImageLibrary EOF
            {
             currentNode = createCompositeNode(grammarAccess.getImageLibraryRule(), currentNode); 
            pushFollow(FOLLOW_ruleImageLibrary_in_entryRuleImageLibrary1220);
            iv_ruleImageLibrary=ruleImageLibrary();
            _fsp--;

             current =iv_ruleImageLibrary; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleImageLibrary1230); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end entryRuleImageLibrary


    // $ANTLR start ruleImageLibrary
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:713:1: ruleImageLibrary returns [EObject current=null] : ( () 'imagelibrary' '{' ( (lv_images_3_0= ruleImage ) )* '}' ) ;
    public final EObject ruleImageLibrary() throws RecognitionException {
        EObject current = null;

        EObject lv_images_3_0 = null;


         EObject temp=null; setCurrentLookahead(); resetLookahead(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:718:6: ( ( () 'imagelibrary' '{' ( (lv_images_3_0= ruleImage ) )* '}' ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:719:1: ( () 'imagelibrary' '{' ( (lv_images_3_0= ruleImage ) )* '}' )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:719:1: ( () 'imagelibrary' '{' ( (lv_images_3_0= ruleImage ) )* '}' )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:719:2: () 'imagelibrary' '{' ( (lv_images_3_0= ruleImage ) )* '}'
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:719:2: ()
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:720:5: 
            {
             
                    temp=factory.create(grammarAccess.getImageLibraryAccess().getImageLibraryAction_0().getType().getClassifier());
                    current = temp; 
                    temp = null;
                    CompositeNode newNode = createCompositeNode(grammarAccess.getImageLibraryAccess().getImageLibraryAction_0(), currentNode.getParent());
                newNode.getChildren().add(currentNode);
                moveLookaheadInfo(currentNode, newNode);
                currentNode = newNode; 
                    associateNodeWithAstElement(currentNode, current); 
                

            }

            match(input,23,FOLLOW_23_in_ruleImageLibrary1274); 

                    createLeafNode(grammarAccess.getImageLibraryAccess().getImagelibraryKeyword_1(), null); 
                
            match(input,13,FOLLOW_13_in_ruleImageLibrary1284); 

                    createLeafNode(grammarAccess.getImageLibraryAccess().getLeftCurlyBracketKeyword_2(), null); 
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:738:1: ( (lv_images_3_0= ruleImage ) )*
            loop8:
            do {
                int alt8=2;
                int LA8_0 = input.LA(1);

                if ( (LA8_0==22||LA8_0==25) ) {
                    alt8=1;
                }


                switch (alt8) {
            	case 1 :
            	    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:739:1: (lv_images_3_0= ruleImage )
            	    {
            	    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:739:1: (lv_images_3_0= ruleImage )
            	    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:740:3: lv_images_3_0= ruleImage
            	    {
            	     
            	    	        currentNode=createCompositeNode(grammarAccess.getImageLibraryAccess().getImagesImageParserRuleCall_3_0(), currentNode); 
            	    	    
            	    pushFollow(FOLLOW_ruleImage_in_ruleImageLibrary1305);
            	    lv_images_3_0=ruleImage();
            	    _fsp--;


            	    	        if (current==null) {
            	    	            current = factory.create(grammarAccess.getImageLibraryRule().getType().getClassifier());
            	    	            associateNodeWithAstElement(currentNode.getParent(), current);
            	    	        }
            	    	        try {
            	    	       		add(
            	    	       			current, 
            	    	       			"images",
            	    	        		lv_images_3_0, 
            	    	        		"Image", 
            	    	        		currentNode);
            	    	        } catch (ValueConverterException vce) {
            	    				handleValueConverterException(vce);
            	    	        }
            	    	        currentNode = currentNode.getParent();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop8;
                }
            } while (true);

            match(input,14,FOLLOW_14_in_ruleImageLibrary1316); 

                    createLeafNode(grammarAccess.getImageLibraryAccess().getRightCurlyBracketKeyword_4(), null); 
                

            }


            }

             resetLookahead(); 
                	lastConsumedNode = currentNode;
                
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end ruleImageLibrary


    // $ANTLR start entryRuleImage
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:774:1: entryRuleImage returns [EObject current=null] : iv_ruleImage= ruleImage EOF ;
    public final EObject entryRuleImage() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleImage = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:775:2: (iv_ruleImage= ruleImage EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:776:2: iv_ruleImage= ruleImage EOF
            {
             currentNode = createCompositeNode(grammarAccess.getImageRule(), currentNode); 
            pushFollow(FOLLOW_ruleImage_in_entryRuleImage1352);
            iv_ruleImage=ruleImage();
            _fsp--;

             current =iv_ruleImage; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleImage1362); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end entryRuleImage


    // $ANTLR start ruleImage
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:783:1: ruleImage returns [EObject current=null] : (this_TabImage_0= ruleTabImage | this_SimpleImage_1= ruleSimpleImage ) ;
    public final EObject ruleImage() throws RecognitionException {
        EObject current = null;

        EObject this_TabImage_0 = null;

        EObject this_SimpleImage_1 = null;


         EObject temp=null; setCurrentLookahead(); resetLookahead(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:788:6: ( (this_TabImage_0= ruleTabImage | this_SimpleImage_1= ruleSimpleImage ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:789:1: (this_TabImage_0= ruleTabImage | this_SimpleImage_1= ruleSimpleImage )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:789:1: (this_TabImage_0= ruleTabImage | this_SimpleImage_1= ruleSimpleImage )
            int alt9=2;
            int LA9_0 = input.LA(1);

            if ( (LA9_0==25) ) {
                alt9=1;
            }
            else if ( (LA9_0==22) ) {
                alt9=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("789:1: (this_TabImage_0= ruleTabImage | this_SimpleImage_1= ruleSimpleImage )", 9, 0, input);

                throw nvae;
            }
            switch (alt9) {
                case 1 :
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:790:5: this_TabImage_0= ruleTabImage
                    {
                     
                            currentNode=createCompositeNode(grammarAccess.getImageAccess().getTabImageParserRuleCall_0(), currentNode); 
                        
                    pushFollow(FOLLOW_ruleTabImage_in_ruleImage1409);
                    this_TabImage_0=ruleTabImage();
                    _fsp--;

                     
                            current = this_TabImage_0; 
                            currentNode = currentNode.getParent();
                        

                    }
                    break;
                case 2 :
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:800:5: this_SimpleImage_1= ruleSimpleImage
                    {
                     
                            currentNode=createCompositeNode(grammarAccess.getImageAccess().getSimpleImageParserRuleCall_1(), currentNode); 
                        
                    pushFollow(FOLLOW_ruleSimpleImage_in_ruleImage1436);
                    this_SimpleImage_1=ruleSimpleImage();
                    _fsp--;

                     
                            current = this_SimpleImage_1; 
                            currentNode = currentNode.getParent();
                        

                    }
                    break;

            }


            }

             resetLookahead(); 
                	lastConsumedNode = currentNode;
                
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end ruleImage


    // $ANTLR start entryRuleSimpleImage
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:816:1: entryRuleSimpleImage returns [EObject current=null] : iv_ruleSimpleImage= ruleSimpleImage EOF ;
    public final EObject entryRuleSimpleImage() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSimpleImage = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:817:2: (iv_ruleSimpleImage= ruleSimpleImage EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:818:2: iv_ruleSimpleImage= ruleSimpleImage EOF
            {
             currentNode = createCompositeNode(grammarAccess.getSimpleImageRule(), currentNode); 
            pushFollow(FOLLOW_ruleSimpleImage_in_entryRuleSimpleImage1471);
            iv_ruleSimpleImage=ruleSimpleImage();
            _fsp--;

             current =iv_ruleSimpleImage; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSimpleImage1481); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end entryRuleSimpleImage


    // $ANTLR start ruleSimpleImage
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:825:1: ruleSimpleImage returns [EObject current=null] : ( 'image' ( (lv_name_1_0= RULE_ID ) ) 'path' ( (lv_importedURI_3_0= RULE_STRING ) ) ) ;
    public final EObject ruleSimpleImage() throws RecognitionException {
        EObject current = null;

        Token lv_name_1_0=null;
        Token lv_importedURI_3_0=null;

         EObject temp=null; setCurrentLookahead(); resetLookahead(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:830:6: ( ( 'image' ( (lv_name_1_0= RULE_ID ) ) 'path' ( (lv_importedURI_3_0= RULE_STRING ) ) ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:831:1: ( 'image' ( (lv_name_1_0= RULE_ID ) ) 'path' ( (lv_importedURI_3_0= RULE_STRING ) ) )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:831:1: ( 'image' ( (lv_name_1_0= RULE_ID ) ) 'path' ( (lv_importedURI_3_0= RULE_STRING ) ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:831:3: 'image' ( (lv_name_1_0= RULE_ID ) ) 'path' ( (lv_importedURI_3_0= RULE_STRING ) )
            {
            match(input,22,FOLLOW_22_in_ruleSimpleImage1516); 

                    createLeafNode(grammarAccess.getSimpleImageAccess().getImageKeyword_0(), null); 
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:835:1: ( (lv_name_1_0= RULE_ID ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:836:1: (lv_name_1_0= RULE_ID )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:836:1: (lv_name_1_0= RULE_ID )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:837:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)input.LT(1);
            match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSimpleImage1533); 

            			createLeafNode(grammarAccess.getSimpleImageAccess().getNameIDTerminalRuleCall_1_0(), "name"); 
            		

            	        if (current==null) {
            	            current = factory.create(grammarAccess.getSimpleImageRule().getType().getClassifier());
            	            associateNodeWithAstElement(currentNode, current);
            	        }
            	        try {
            	       		set(
            	       			current, 
            	       			"name",
            	        		lv_name_1_0, 
            	        		"ID", 
            	        		lastConsumedNode);
            	        } catch (ValueConverterException vce) {
            				handleValueConverterException(vce);
            	        }
            	    

            }


            }

            match(input,24,FOLLOW_24_in_ruleSimpleImage1548); 

                    createLeafNode(grammarAccess.getSimpleImageAccess().getPathKeyword_2(), null); 
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:863:1: ( (lv_importedURI_3_0= RULE_STRING ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:864:1: (lv_importedURI_3_0= RULE_STRING )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:864:1: (lv_importedURI_3_0= RULE_STRING )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:865:3: lv_importedURI_3_0= RULE_STRING
            {
            lv_importedURI_3_0=(Token)input.LT(1);
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleSimpleImage1565); 

            			createLeafNode(grammarAccess.getSimpleImageAccess().getImportedURISTRINGTerminalRuleCall_3_0(), "importedURI"); 
            		

            	        if (current==null) {
            	            current = factory.create(grammarAccess.getSimpleImageRule().getType().getClassifier());
            	            associateNodeWithAstElement(currentNode, current);
            	        }
            	        try {
            	       		set(
            	       			current, 
            	       			"importedURI",
            	        		lv_importedURI_3_0, 
            	        		"STRING", 
            	        		lastConsumedNode);
            	        } catch (ValueConverterException vce) {
            				handleValueConverterException(vce);
            	        }
            	    

            }


            }


            }


            }

             resetLookahead(); 
                	lastConsumedNode = currentNode;
                
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end ruleSimpleImage


    // $ANTLR start entryRuleTabImage
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:895:1: entryRuleTabImage returns [EObject current=null] : iv_ruleTabImage= ruleTabImage EOF ;
    public final EObject entryRuleTabImage() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleTabImage = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:896:2: (iv_ruleTabImage= ruleTabImage EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:897:2: iv_ruleTabImage= ruleTabImage EOF
            {
             currentNode = createCompositeNode(grammarAccess.getTabImageRule(), currentNode); 
            pushFollow(FOLLOW_ruleTabImage_in_entryRuleTabImage1606);
            iv_ruleTabImage=ruleTabImage();
            _fsp--;

             current =iv_ruleTabImage; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleTabImage1616); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end entryRuleTabImage


    // $ANTLR start ruleTabImage
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:904:1: ruleTabImage returns [EObject current=null] : ( 'tabimage' ( (lv_name_1_0= RULE_ID ) ) 'selected' ( ( RULE_ID ) ) 'unselected' ( ( RULE_ID ) ) ) ;
    public final EObject ruleTabImage() throws RecognitionException {
        EObject current = null;

        Token lv_name_1_0=null;

         EObject temp=null; setCurrentLookahead(); resetLookahead(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:909:6: ( ( 'tabimage' ( (lv_name_1_0= RULE_ID ) ) 'selected' ( ( RULE_ID ) ) 'unselected' ( ( RULE_ID ) ) ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:910:1: ( 'tabimage' ( (lv_name_1_0= RULE_ID ) ) 'selected' ( ( RULE_ID ) ) 'unselected' ( ( RULE_ID ) ) )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:910:1: ( 'tabimage' ( (lv_name_1_0= RULE_ID ) ) 'selected' ( ( RULE_ID ) ) 'unselected' ( ( RULE_ID ) ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:910:3: 'tabimage' ( (lv_name_1_0= RULE_ID ) ) 'selected' ( ( RULE_ID ) ) 'unselected' ( ( RULE_ID ) )
            {
            match(input,25,FOLLOW_25_in_ruleTabImage1651); 

                    createLeafNode(grammarAccess.getTabImageAccess().getTabimageKeyword_0(), null); 
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:914:1: ( (lv_name_1_0= RULE_ID ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:915:1: (lv_name_1_0= RULE_ID )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:915:1: (lv_name_1_0= RULE_ID )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:916:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)input.LT(1);
            match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTabImage1668); 

            			createLeafNode(grammarAccess.getTabImageAccess().getNameIDTerminalRuleCall_1_0(), "name"); 
            		

            	        if (current==null) {
            	            current = factory.create(grammarAccess.getTabImageRule().getType().getClassifier());
            	            associateNodeWithAstElement(currentNode, current);
            	        }
            	        try {
            	       		set(
            	       			current, 
            	       			"name",
            	        		lv_name_1_0, 
            	        		"ID", 
            	        		lastConsumedNode);
            	        } catch (ValueConverterException vce) {
            				handleValueConverterException(vce);
            	        }
            	    

            }


            }

            match(input,26,FOLLOW_26_in_ruleTabImage1683); 

                    createLeafNode(grammarAccess.getTabImageAccess().getSelectedKeyword_2(), null); 
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:942:1: ( ( RULE_ID ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:943:1: ( RULE_ID )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:943:1: ( RULE_ID )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:944:3: RULE_ID
            {

            			if (current==null) {
            	            current = factory.create(grammarAccess.getTabImageRule().getType().getClassifier());
            	            associateNodeWithAstElement(currentNode, current);
            	        }
                    
            match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTabImage1701); 

            		createLeafNode(grammarAccess.getTabImageAccess().getSelectedSimpleImageCrossReference_3_0(), "selected"); 
            	

            }


            }

            match(input,27,FOLLOW_27_in_ruleTabImage1711); 

                    createLeafNode(grammarAccess.getTabImageAccess().getUnselectedKeyword_4(), null); 
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:960:1: ( ( RULE_ID ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:961:1: ( RULE_ID )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:961:1: ( RULE_ID )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:962:3: RULE_ID
            {

            			if (current==null) {
            	            current = factory.create(grammarAccess.getTabImageRule().getType().getClassifier());
            	            associateNodeWithAstElement(currentNode, current);
            	        }
                    
            match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTabImage1729); 

            		createLeafNode(grammarAccess.getTabImageAccess().getUnselectedSimpleImageCrossReference_5_0(), "unselected"); 
            	

            }


            }


            }


            }

             resetLookahead(); 
                	lastConsumedNode = currentNode;
                
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end ruleTabImage


    // $ANTLR start entryRuleEventLibrary
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:982:1: entryRuleEventLibrary returns [EObject current=null] : iv_ruleEventLibrary= ruleEventLibrary EOF ;
    public final EObject entryRuleEventLibrary() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleEventLibrary = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:983:2: (iv_ruleEventLibrary= ruleEventLibrary EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:984:2: iv_ruleEventLibrary= ruleEventLibrary EOF
            {
             currentNode = createCompositeNode(grammarAccess.getEventLibraryRule(), currentNode); 
            pushFollow(FOLLOW_ruleEventLibrary_in_entryRuleEventLibrary1765);
            iv_ruleEventLibrary=ruleEventLibrary();
            _fsp--;

             current =iv_ruleEventLibrary; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleEventLibrary1775); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end entryRuleEventLibrary


    // $ANTLR start ruleEventLibrary
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:991:1: ruleEventLibrary returns [EObject current=null] : ( () 'eventlibrary' '{' ( (lv_events_3_0= ruleEvent ) )* '}' ) ;
    public final EObject ruleEventLibrary() throws RecognitionException {
        EObject current = null;

        EObject lv_events_3_0 = null;


         EObject temp=null; setCurrentLookahead(); resetLookahead(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:996:6: ( ( () 'eventlibrary' '{' ( (lv_events_3_0= ruleEvent ) )* '}' ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:997:1: ( () 'eventlibrary' '{' ( (lv_events_3_0= ruleEvent ) )* '}' )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:997:1: ( () 'eventlibrary' '{' ( (lv_events_3_0= ruleEvent ) )* '}' )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:997:2: () 'eventlibrary' '{' ( (lv_events_3_0= ruleEvent ) )* '}'
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:997:2: ()
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:998:5: 
            {
             
                    temp=factory.create(grammarAccess.getEventLibraryAccess().getEventLibraryAction_0().getType().getClassifier());
                    current = temp; 
                    temp = null;
                    CompositeNode newNode = createCompositeNode(grammarAccess.getEventLibraryAccess().getEventLibraryAction_0(), currentNode.getParent());
                newNode.getChildren().add(currentNode);
                moveLookaheadInfo(currentNode, newNode);
                currentNode = newNode; 
                    associateNodeWithAstElement(currentNode, current); 
                

            }

            match(input,28,FOLLOW_28_in_ruleEventLibrary1819); 

                    createLeafNode(grammarAccess.getEventLibraryAccess().getEventlibraryKeyword_1(), null); 
                
            match(input,13,FOLLOW_13_in_ruleEventLibrary1829); 

                    createLeafNode(grammarAccess.getEventLibraryAccess().getLeftCurlyBracketKeyword_2(), null); 
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1016:1: ( (lv_events_3_0= ruleEvent ) )*
            loop10:
            do {
                int alt10=2;
                int LA10_0 = input.LA(1);

                if ( (LA10_0==29) ) {
                    alt10=1;
                }


                switch (alt10) {
            	case 1 :
            	    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1017:1: (lv_events_3_0= ruleEvent )
            	    {
            	    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1017:1: (lv_events_3_0= ruleEvent )
            	    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1018:3: lv_events_3_0= ruleEvent
            	    {
            	     
            	    	        currentNode=createCompositeNode(grammarAccess.getEventLibraryAccess().getEventsEventParserRuleCall_3_0(), currentNode); 
            	    	    
            	    pushFollow(FOLLOW_ruleEvent_in_ruleEventLibrary1850);
            	    lv_events_3_0=ruleEvent();
            	    _fsp--;


            	    	        if (current==null) {
            	    	            current = factory.create(grammarAccess.getEventLibraryRule().getType().getClassifier());
            	    	            associateNodeWithAstElement(currentNode.getParent(), current);
            	    	        }
            	    	        try {
            	    	       		add(
            	    	       			current, 
            	    	       			"events",
            	    	        		lv_events_3_0, 
            	    	        		"Event", 
            	    	        		currentNode);
            	    	        } catch (ValueConverterException vce) {
            	    				handleValueConverterException(vce);
            	    	        }
            	    	        currentNode = currentNode.getParent();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop10;
                }
            } while (true);

            match(input,14,FOLLOW_14_in_ruleEventLibrary1861); 

                    createLeafNode(grammarAccess.getEventLibraryAccess().getRightCurlyBracketKeyword_4(), null); 
                

            }


            }

             resetLookahead(); 
                	lastConsumedNode = currentNode;
                
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end ruleEventLibrary


    // $ANTLR start entryRuleEvent
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1052:1: entryRuleEvent returns [EObject current=null] : iv_ruleEvent= ruleEvent EOF ;
    public final EObject entryRuleEvent() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleEvent = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1053:2: (iv_ruleEvent= ruleEvent EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1054:2: iv_ruleEvent= ruleEvent EOF
            {
             currentNode = createCompositeNode(grammarAccess.getEventRule(), currentNode); 
            pushFollow(FOLLOW_ruleEvent_in_entryRuleEvent1897);
            iv_ruleEvent=ruleEvent();
            _fsp--;

             current =iv_ruleEvent; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleEvent1907); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end entryRuleEvent


    // $ANTLR start ruleEvent
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1061:1: ruleEvent returns [EObject current=null] : ( 'event' ( (lv_name_1_0= RULE_ID ) ) ) ;
    public final EObject ruleEvent() throws RecognitionException {
        EObject current = null;

        Token lv_name_1_0=null;

         EObject temp=null; setCurrentLookahead(); resetLookahead(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1066:6: ( ( 'event' ( (lv_name_1_0= RULE_ID ) ) ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1067:1: ( 'event' ( (lv_name_1_0= RULE_ID ) ) )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1067:1: ( 'event' ( (lv_name_1_0= RULE_ID ) ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1067:3: 'event' ( (lv_name_1_0= RULE_ID ) )
            {
            match(input,29,FOLLOW_29_in_ruleEvent1942); 

                    createLeafNode(grammarAccess.getEventAccess().getEventKeyword_0(), null); 
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1071:1: ( (lv_name_1_0= RULE_ID ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1072:1: (lv_name_1_0= RULE_ID )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1072:1: (lv_name_1_0= RULE_ID )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1073:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)input.LT(1);
            match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleEvent1959); 

            			createLeafNode(grammarAccess.getEventAccess().getNameIDTerminalRuleCall_1_0(), "name"); 
            		

            	        if (current==null) {
            	            current = factory.create(grammarAccess.getEventRule().getType().getClassifier());
            	            associateNodeWithAstElement(currentNode, current);
            	        }
            	        try {
            	       		set(
            	       			current, 
            	       			"name",
            	        		lv_name_1_0, 
            	        		"ID", 
            	        		lastConsumedNode);
            	        } catch (ValueConverterException vce) {
            				handleValueConverterException(vce);
            	        }
            	    

            }


            }


            }


            }

             resetLookahead(); 
                	lastConsumedNode = currentNode;
                
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end ruleEvent


    // $ANTLR start entryRulePlainString
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1105:1: entryRulePlainString returns [EObject current=null] : iv_rulePlainString= rulePlainString EOF ;
    public final EObject entryRulePlainString() throws RecognitionException {
        EObject current = null;

        EObject iv_rulePlainString = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1106:2: (iv_rulePlainString= rulePlainString EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1107:2: iv_rulePlainString= rulePlainString EOF
            {
             currentNode = createCompositeNode(grammarAccess.getPlainStringRule(), currentNode); 
            pushFollow(FOLLOW_rulePlainString_in_entryRulePlainString2002);
            iv_rulePlainString=rulePlainString();
            _fsp--;

             current =iv_rulePlainString; 
            match(input,EOF,FOLLOW_EOF_in_entryRulePlainString2012); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end entryRulePlainString


    // $ANTLR start rulePlainString
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1114:1: rulePlainString returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ;
    public final EObject rulePlainString() throws RecognitionException {
        EObject current = null;

        Token lv_value_0_0=null;

         EObject temp=null; setCurrentLookahead(); resetLookahead(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1119:6: ( ( (lv_value_0_0= RULE_STRING ) ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1120:1: ( (lv_value_0_0= RULE_STRING ) )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1120:1: ( (lv_value_0_0= RULE_STRING ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1121:1: (lv_value_0_0= RULE_STRING )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1121:1: (lv_value_0_0= RULE_STRING )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:1122:3: lv_value_0_0= RULE_STRING
            {
            lv_value_0_0=(Token)input.LT(1);
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rulePlainString2053); 

            			createLeafNode(grammarAccess.getPlainStringAccess().getValueSTRINGTerminalRuleCall_0(), "value"); 
            		

            	        if (current==null) {
            	            current = factory.create(grammarAccess.getPlainStringRule().getType().getClassifier());
            	            associateNodeWithAstElement(currentNode, current);
            	        }
            	        try {
            	       		set(
            	       			current, 
            	       			"value",
            	        		lv_value_0_0, 
            	        		"STRING", 
            	        		lastConsumedNode);
            	        } catch (ValueConverterException vce) {
            				handleValueConverterException(vce);
            	        }
            	    

            }


            }


            }

             resetLookahead(); 
                	lastConsumedNode = currentNode;
                
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end rulePlainString


 

    public static final BitSet FOLLOW_ruleAndroNavRoot_in_entryRuleAndroNavRoot75 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAndroNavRoot85 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_11_in_ruleAndroNavRoot120 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleAndroNavRoot137 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_ruleNavigation_in_ruleAndroNavRoot163 = new BitSet(new long[]{0x0000000010800002L});
    public static final BitSet FOLLOW_ruleImageLibrary_in_ruleAndroNavRoot184 = new BitSet(new long[]{0x0000000010000002L});
    public static final BitSet FOLLOW_ruleEventLibrary_in_ruleAndroNavRoot206 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNavigation_in_entryRuleNavigation243 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNavigation253 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_12_in_ruleNavigation297 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_13_in_ruleNavigation307 = new BitSet(new long[]{0x0000000000068000L});
    public static final BitSet FOLLOW_ruleAbstractActivity_in_ruleNavigation328 = new BitSet(new long[]{0x000000000006C000L});
    public static final BitSet FOLLOW_ruleAbstractActivity_in_ruleNavigation349 = new BitSet(new long[]{0x000000000006C000L});
    public static final BitSet FOLLOW_14_in_ruleNavigation360 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAbstractActivity_in_entryRuleAbstractActivity396 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAbstractActivity406 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleActivity_in_ruleAbstractActivity453 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTabActivity_in_ruleAbstractActivity480 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleActivity_in_entryRuleActivity515 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleActivity525 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_15_in_ruleActivity561 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleActivity578 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_13_in_ruleActivity593 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleActivity603 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleActivity621 = new BitSet(new long[]{0x0000000000004000L});
    public static final BitSet FOLLOW_14_in_ruleActivity631 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePreferenceActivity_in_ruleActivity660 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePreferenceActivity_in_entryRulePreferenceActivity695 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePreferenceActivity705 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_17_in_rulePreferenceActivity740 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_rulePreferenceActivity757 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_13_in_rulePreferenceActivity772 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_rulePreferenceActivity782 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_rulePreferenceActivity800 = new BitSet(new long[]{0x0000000000004000L});
    public static final BitSet FOLLOW_14_in_rulePreferenceActivity810 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTabActivity_in_entryRuleTabActivity846 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTabActivity856 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_18_in_ruleTabActivity891 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleTabActivity908 = new BitSet(new long[]{0x0000000000182000L});
    public static final BitSet FOLLOW_19_in_ruleTabActivity932 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_20_in_ruleTabActivity961 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_13_in_ruleTabActivity973 = new BitSet(new long[]{0x0000000000200000L});
    public static final BitSet FOLLOW_ruleTab_in_ruleTabActivity994 = new BitSet(new long[]{0x0000000000204000L});
    public static final BitSet FOLLOW_14_in_ruleTabActivity1005 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTab_in_entryRuleTab1041 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTab1051 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_21_in_ruleTab1086 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleTab1103 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_13_in_ruleTab1118 = new BitSet(new long[]{0x0000000000008000L});
    public static final BitSet FOLLOW_15_in_ruleTab1128 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleTab1146 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_22_in_ruleTab1156 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleTab1174 = new BitSet(new long[]{0x0000000000004000L});
    public static final BitSet FOLLOW_14_in_ruleTab1184 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleImageLibrary_in_entryRuleImageLibrary1220 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleImageLibrary1230 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_ruleImageLibrary1274 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_13_in_ruleImageLibrary1284 = new BitSet(new long[]{0x0000000002404000L});
    public static final BitSet FOLLOW_ruleImage_in_ruleImageLibrary1305 = new BitSet(new long[]{0x0000000002404000L});
    public static final BitSet FOLLOW_14_in_ruleImageLibrary1316 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleImage_in_entryRuleImage1352 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleImage1362 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTabImage_in_ruleImage1409 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSimpleImage_in_ruleImage1436 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSimpleImage_in_entryRuleSimpleImage1471 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSimpleImage1481 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_ruleSimpleImage1516 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleSimpleImage1533 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_24_in_ruleSimpleImage1548 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleSimpleImage1565 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTabImage_in_entryRuleTabImage1606 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTabImage1616 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_ruleTabImage1651 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleTabImage1668 = new BitSet(new long[]{0x0000000004000000L});
    public static final BitSet FOLLOW_26_in_ruleTabImage1683 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleTabImage1701 = new BitSet(new long[]{0x0000000008000000L});
    public static final BitSet FOLLOW_27_in_ruleTabImage1711 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleTabImage1729 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleEventLibrary_in_entryRuleEventLibrary1765 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleEventLibrary1775 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_ruleEventLibrary1819 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_13_in_ruleEventLibrary1829 = new BitSet(new long[]{0x0000000020004000L});
    public static final BitSet FOLLOW_ruleEvent_in_ruleEventLibrary1850 = new BitSet(new long[]{0x0000000020004000L});
    public static final BitSet FOLLOW_14_in_ruleEventLibrary1861 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleEvent_in_entryRuleEvent1897 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleEvent1907 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_29_in_ruleEvent1942 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleEvent1959 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePlainString_in_entryRulePlainString2002 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePlainString2012 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rulePlainString2053 = new BitSet(new long[]{0x0000000000000002L});

}